const http = require("http");
const url = require("url");
const mime = require("mime");


// 读取在服务端上的文件
const fsPromises = require("fs/promises");

// 获取public文件的路径
const path = require("path");
const app = http.createServer();

app.on("request",async (req,res) =>{
    let {pathname} = url.parse(req.url);

    // 读取在服务端上的文件
    // path.join路径拼接的方法
    // pathname用户输入的路径
    let filepath = path.join(__dirname,"01.public",pathname);
    // console.log(filepath);

    // mime第三方的包  获取文件的类型（content-type）,getType获取类型
    let CType = mime.getType(filepath);

    // 防止用户传入错误路径
    try{
        console.log(`${pathname},${CType}`);
        // 读取文件数据
        let data = await fsPromises.readFile(filepath);
        // console.log(data)
        res.writeHead(200,{
            "Content-Type": CType
        })

        // 把读取文件数据返回给客户端
        res.end(data);
    }catch{
        console.log("404" + pathname);
        res.writeHead(404,{
            "Content-Type": "text/html;charset=utf8"
        })

        res.end("请求的文件不存在");
    }
    
});

app.listen(3009,() =>{
    console.log("监听端口，3009");
})